示例

1import { Button, GlassEffectContainer, HStack, NamespaceReader, Navigation, Script, VStack, useObservable } from "scripting"
2
3function View() {
4
5  const isAlternativeMenu = useObservable(false)
6
7  return <NamespaceReader>{namespace => <VStack
8    spacing={50}
9    frame={{
10      maxWidth: 'infinity',
11      maxHeight: 'infinity'
12    }}
13    background="systemYellow"
14  >
15    <GlassEffectContainer
16    >
17      <HStack
18        spacing={0}
19        font="largeTitle"
20        imageScale="large"
21        buttonStyle="glass"
22        labelStyle="iconOnly"
23      >
24        {
25          isAlternativeMenu.value
26            ? <>
27              <Button
28                title="Home"
29                systemImage="house"
30                action={() => { }}
31                glassEffectID={{
32                  id: 1,
33                  namespace
34                }}
35                glassEffectUnion={{
36                  id: 1,
37                  namespace
38                }}
39              />
40              <Button
41                title="Settings"
42                systemImage="gear"
43                action={() => { }}
44                glassEffectID={{
45                  id: 2,
46                  namespace
47                }}
48                glassEffectUnion={{
49                  id: 1,
50                  namespace
51                }}
52              />
53            </>
54
55            : <>
56              <Button
57                title="Edit"
58                systemImage="pencil"
59                action={() => { }}
60                glassEffectID={{
61                  id: 1,
62                  namespace
63                }}
64                glassEffectUnion={{
65                  id: 1,
66                  namespace
67                }}
68              />
69              <Button
70                title="Erase"
71                systemImage="eraser"
72                action={() => { }}
73                glassEffectID={{
74                  id: 3,
75                  namespace
76                }}
77                glassEffectUnion={{
78                  id: 1,
79                  namespace
80                }}
81                glassEffectTransition="materialize"
82              />
83              <Button
84                title="Delete"
85                systemImage="trash"
86                action={() => { }}
87                glassEffectID={{
88                  id: 2,
89                  namespace
90                }}
91                glassEffectUnion={{
92                  id: 1,
93                  namespace
94                }}
95              />
96            </>
97        }
98      </HStack>
99    </GlassEffectContainer>
100
101    <Button
102      title="Toggle"
103      buttonStyle="bordered"
104      action={() => {
105        withAnimation(() => {
106          isAlternativeMenu.setValue(
107            !isAlternativeMenu.value
108          )
109        })
110      }}
111    />
112  </VStack>
113  }</NamespaceReader>
114}
115
116async function run() {
117  await Navigation.present(<View />)
118
119  Script.exit()
120}
121
122run()